package com.sayimo.maker.mall.goods.service;

import java.util.List;
import java.util.Map;

import com.sayimo.framework.exception.DaoException;
import com.sayimo.framework.exception.ServiceException;
import com.sayimo.maker.mall.goods.vo.GoodsNormsValueStock;
import com.sayimo.maker.mall.orders.vo.OrdersGoodsBuyInfo;








/**
 * @Copyright (c) 2016 广东省尚一互联网有限公司
 * @Project: schoolmallapi
 * @ClassName: GoodsNormsValuesInterfaceService
 * @Description: 商品对应规格信息Service
 * @Author: 王瑞清
 * @Date: 日期：2016年1月4日 时间：下午7:25:25
 * @Version 1.0.0
 */
public interface GoodsNormsValueStockInterfaceService {

	
	/**
	 * 
	 * @MethodName queryGoodsNormsValueStockByGoodsId
	 * @Description 按商品ID和规格ID查询
	 * @author chenpy
	 * @date 2016年1月5日 下午3:46:46
	 * @param
	 * @return GoodsNormsValueStock
	 * @VERSION 1.0.0
	 */
	public GoodsNormsValueStock queryGoodsNormsValueStockByGoodsId(GoodsNormsValueStock goodsNormsValueStock) throws ServiceException;

	/** 
	* @Title: updateGoodsNormsStockById 
	* @Author: 王瑞清
	* @Date:日期：2016年1月5日  时间：下午4:24:21
	* @Description: 扣除库存
	* @param goodsNormsStock
	* @throws DaoException
	* @return void
	* @Version 1.0.0
	*/ 
	public void updateAbatementGoodsNormsStockById(Integer sctockId,Integer stockNum) throws ServiceException;
	
	/** 
	* @Title: letNowStock 
	* @Author: 王瑞清
	* @Date:日期：2016年1月5日  时间：下午4:39:01
	* @Description: 判定是否可以购买
	* @param buyNum 购买数量
	* @param sctockId 库存ID
	* @throws ServiceException
	* @return boolean
	* @Version 1.0.0
	*/ 
	public OrdersGoodsBuyInfo ordersBuyStatus(Integer[] orderIdArray, String areaCode) throws ServiceException;
	
	
	/**
	 * 
	 * @MethodName searchGoodsByName
	 * @Description 首页商品搜索
	 * 
	 * @author chenpy
	 * @date 2016年1月6日 下午3:25:50
	 * @param goodsId
	 * @param normsValueId
	 * @return Map
	 * @VERSION 1.0.0
	 */
	@SuppressWarnings("rawtypes")
	public Map changeGoodsNormsValue(Integer goodsId, Integer normsValueId) throws ServiceException;
	
	/**
	 * 
	 * @MethodName batchUpdateGoodsStock
	 * @Description 批量修改商品库存
	 * 
	 * @author chenpy
	 * @date 2016年1月18日 下午3:56:55
	 * @param 
	 * @return int
	 * @VERSION 1.0.0
	 */
	@SuppressWarnings("rawtypes")
	public int batchUpdateGoodsStock(List list) throws ServiceException;
	
	
	public Map<String,Object> getFirstGoodsNormsValueStockByGoodsId(Integer goodsId) throws DaoException;
	
	/**
	 * 
	* @Title: querySkuCodeByNomalId 
	* @Author: 田超
	* @Date:日期：2016年6月28日  时间：上午11:08:41
	* @Description: 根据商品id和规格id查询skuCode
	* @param paramMap
	* @return
	* @throws DaoException
	* @return Map<String,Object>
	* @Version 1.0.0
	 */
	public Map<String, Object> querySkuCodeByNomalId(Map<String, Object> paramMap) throws DaoException;
	
	/**
	 * 
	* @Title: updateStockNum 
	* @Author: 田超
	* @Date:日期：2016年6月28日  时间：下午6:21:02
	* @Description: 更新商品库存
	* @param paramMap
	* @return
	* @throws ServiceException
	* @return Integer
	* @Version 1.0.0
	 */
	public Integer updateStockNum(Map<String,Object> paramMap) throws ServiceException;
	
	/** 
	  * @package com.sayimo.school.mall.service.goods
	  * @author wangyang
	  * @Title:  getNormsValueStockByMap
	  * @Description: 按goodsId, normsValueId获取GoodsNormsValueStock
	  * @param 
	  * @throws 
	  * @return Map
	  * @date 2016年7月15日
	  */ 
	public Map<String, Object> getNormsValueStockByMap(Map<String, Object> paramMap) throws ServiceException;
}
